package com.meituan.sdk.model.dcps.fulfill.groupbuyDeliveryChangeStatus;

import com.meituan.sdk.annotations.ApiMeta;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 1.1.12配送信息回调
* This file was automatically generated.
*/
@ApiMeta(
    path = "/dcps/fulfill/delivery/change/status",
    businessId = 46,
    apiVersion = "10038",
    apiName = "groupbuy_delivery_change_status",
    needAuth = true
)
public class GroupbuyDeliveryChangeStatusRequest implements MeituanRequest<GroupbuyDeliveryChangeStatusResponse> {
    /**
    * <p data-diff-id="ct-diff-id-8d98ebea-911b-4ad7-bdab-d8897b3363a6">预约单号</p>
    */
    @NotBlank(message = "bookingOrderId不能为空")
    @SerializedName("bookingOrderId")
    private String bookingOrderId;
    /**
    * <p data-diff-id="ct-diff-id-d42c327d-5826-47ea-977c-5226e240b204">操作ip</p>
    */
    @SerializedName("opIp")
    private String opIp;
    /**
    * <p data-diff-id="ct-diff-id-c92d1594-dcf8-43c7-9c50-ece75237e132">操作系统</p>
    */
    @SerializedName("opPlatform")
    private String opPlatform;
    /**
    * <p data-diff-id="ct-diff-id-85bf6829-20cb-4a51-9649-08e9a03ca471">设备号</p>
    */
    @SerializedName("opUuid")
    private String opUuid;
    /**
    * <p data-diff-id="ct-diff-id-7ed77ec4-26cb-453a-83f0-e8355a1f85b3">骑手姓名</p>
    */
    @SerializedName("carrierName")
    private String carrierName;
    /**
    * <p data-diff-id="ct-diff-id-f3e8f0a2-acad-4f50-b892-100d246421f7">骑手电话</p>
    */
    @SerializedName("carrierPhone")
    private String carrierPhone;
    /**
    * <p data-diff-id="ct-diff-id-59a6f549-2197-452b-a9d1-e7b23c500c05">运单号</p>
    */
    @SerializedName("trackingNumber")
    private String trackingNumber;
    /**
    * <p data-diff-id="ct-diff-id-18244c58-ad15-49a7-937a-6a27d6f1b0c5">配送状态</p>
    */
    @NotNull(message = "logisticsStatus不能为空")
    @SerializedName("logisticsStatus")
    private Integer logisticsStatus;

    public String getBookingOrderId() {
        return bookingOrderId;
    }
    public void setBookingOrderId(String bookingOrderId) {
        this.bookingOrderId = bookingOrderId;
    }
    public String getOpIp() {
        return opIp;
    }
    public void setOpIp(String opIp) {
        this.opIp = opIp;
    }
    public String getOpPlatform() {
        return opPlatform;
    }
    public void setOpPlatform(String opPlatform) {
        this.opPlatform = opPlatform;
    }
    public String getOpUuid() {
        return opUuid;
    }
    public void setOpUuid(String opUuid) {
        this.opUuid = opUuid;
    }
    public String getCarrierName() {
        return carrierName;
    }
    public void setCarrierName(String carrierName) {
        this.carrierName = carrierName;
    }
    public String getCarrierPhone() {
        return carrierPhone;
    }
    public void setCarrierPhone(String carrierPhone) {
        this.carrierPhone = carrierPhone;
    }
    public String getTrackingNumber() {
        return trackingNumber;
    }
    public void setTrackingNumber(String trackingNumber) {
        this.trackingNumber = trackingNumber;
    }
    public Integer getLogisticsStatus() {
        return logisticsStatus;
    }
    public void setLogisticsStatus(Integer logisticsStatus) {
        this.logisticsStatus = logisticsStatus;
    }


    @Override
    public MeituanResponse<GroupbuyDeliveryChangeStatusResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<GroupbuyDeliveryChangeStatusResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "GroupbuyDeliveryChangeStatusRequest{" + "bookingOrderId=" + bookingOrderId + "," + "opIp=" + opIp + "," + "opPlatform=" + opPlatform + "," + "opUuid=" + opUuid + "," + "carrierName=" + carrierName + "," + "carrierPhone=" + carrierPhone + "," + "trackingNumber=" + trackingNumber + "," + "logisticsStatus=" + logisticsStatus + "}";
    }
}
